package com.cloud.user.feign.order;

import com.cloud.service.api.IOrderApi;
import com.cloud.service.response.ResultResponse;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.PostMapping;

import com.cloud.service.dto.OrderDTO;

/**
 * user服务通过Feign调用order服务
 *
 * TIPS: FeignClient注解中  value = "order" 为 order 项目的 application.name;
 *                      	path = "/api/order" 为 OrderResourceController 的 RequestMapping。
 *                      						如果继承的接口实现了@RequestMapping 可以不用写
 *
 * @author qxh
 */
@FeignClient(value = "order")
public interface OrderClient extends IOrderApi {

	/**
	 * 创建订单(重写方法，将请求url 多加了"/order" 路径)
	 *
	 * TIPS：如果有需求可以重写抽象方法，但是对应的服务的Controller也需要重写，	见IOrderApi的实现类OrderResourceController对应方法post()
	 *
	 * @param dto						订单
	 * @return Long
	 */
	@Override
	@PostMapping("/order")
	ResultResponse<Long> post(OrderDTO dto);

}
